package unipe.p4.programacao3.model.pessoa;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.OneToOne;
import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;
import unipe.p4.programacao3.model.endereco.Endereco;

@Entity
@NamedQueries({
	@NamedQuery(
			name="PessoaFisica.findAll",
			query="SELECT o FROM PessoaFisica o"),
	@NamedQuery(
			name="PessoaFisica.count",
			query="SELECT COUNT(o) FROM PessoaFisica o"),
	@NamedQuery(
			name="PessoaFisica.findById",
			query="SELECT o FROM PessoaFisica o WHERE o.id=:id")	
})
public class PessoaFisica extends Pessoa{	
	private static final long serialVersionUID = 1L;
	private String cpf;
	@OneToOne(mappedBy="pessoa",cascade={CascadeType.PERSIST,CascadeType.REFRESH,
			CascadeType.MERGE,CascadeType.DETACH})
	private Usuario usuario;

	public PessoaFisica() {
		super();
	}

	public PessoaFisica(String nome, String rg, Contato contato,
			Endereco endereco, String cpf, Usuario usuario) {
		super(nome, rg, contato, endereco);
		this.cpf = cpf;
		this.usuario = usuario;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	@Override
	public String getCpfCnpj() {
		return this.getCpf();
	}	

}
